/*******************************************************************************
* Имя файла: colorTextConsole.h
* Дата: 31-03-2024
* Разработчик: Андрей Подлегаев
* На основе кода: Dr. Moritz Lehmann,
* theoretical physicist at the University of Bayreuth
* Группа: 315
* Факультет: ЦДО ТУСУР
* Лицензия: BSD
* Описание: Решение задач к лабораторной работе №4 (ЦДО ТУСУР)
* *****************************************************************************/
#ifndef COLORTEXTCONSOLE_H
#define COLORTEXTCONSOLE_H

#include <iostream>
#include <string>
#include <iomanip>

#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#define VC_EXTRALEAN
#include <Windows.h> // for displaying colors
#endif // Windows

#define color_black      0
#define color_dark_blue  1
#define color_dark_green 2
#define color_light_blue 3
#define color_dark_red   4
#define color_magenta    5
#define color_orange     6
#define color_light_gray 7
#define color_gray       8
#define color_blue       9
#define color_green     10
#define color_cyan      11
#define color_red       12
#define color_pink      13
#define color_yellow    14
#define color_white     15

std::string getTextcolorCode(const int textcolor);

std::string getBackgroundcolorCode(const int backgroundcolor);

std::string getPrintColor(const int textcolor);

std::string getPrintColor(const int textcolor, const int backgroundcolor);

void printColor(const int textcolor);

void printColor(const int textcolor, const int backgroundcolor);

void printColorReset();

void println(const std::string& s="");

void print(const std::string& s="");

void print(const std::string& s, const int textcolor);

void print(const std::string& s, const int textcolor, const int backgroundcolor);

void printNoReset(const std::string& s, const int textcolor);

void printNoReset(const std::string& s, const int textcolor, const int backgroundcolor);

#endif // COLORTEXTCONSOLE_H
